﻿using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;

namespace TestModels
{
    public interface IComplexObject { int SimpleInt { get; set; } }

    public class ComplexObject : IComplexObject
    {
        public int SimpleInt { get; set; }
        public string Name { get; set; }
        public IComplexObject OtherComplex { get; set; }
    }

    public class ComplexObjectPolymorphicCollection : Collection<IComplexObject> { }

    public class ComplexObjectCollection : Collection<ComplexObject> { }

    public class ComplexObjectPolymorphicDictionary : Dictionary<int, IComplexObject> { }

    public class ComplexObjectExtendedDictionary : Dictionary<int, ComplexObjectExtendedDictionary>
    {
        public object ReferenceObject { get; set; }
    }
}
